home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / EMULATOR / GBDK_BIN / examples / c / sprite < prev    next >
Text File  |  1996-06-03  |  9KB  |  188 lines

  1. #include <stdlib.h>
  2.  
  3. /*
  4.  * Image title: earth.gif
  5.  * Image size: 0x10 x 0x70
  6.  * Number of tiles (total - unique): 0x1C - 0x1C
  7.  */
  8.  
  9. unsigned char earth_data[] = {
  10.  
  11.         /* Tile 0x00 */
  12.     0x07,0x07,0x18,0x1F,0x32,0x2D,0x71,0x4E,0x70,0x4F,0xF8,0x87,0xF8,0x87,0xF8,0x87,
  13.     0xFC,0x83,0xFE,0x81,0x7F,0x40,0x7F,0x40,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00,
  14.     0xC0,0xC0,0xF0,0x30,0x78,0x88,0x3C,0xC4,0x5C,0xA4,0x9E,0x62,0x3E,0xC2,0x3E,0xC2,
  15.     0x5E,0xA2,0x7E,0x82,0x0C,0xF4,0x0C,0xF4,0x98,0x68,0xB0,0x70,0xC0,0xC0,0x00,0x00,
  16.     0x07,0x07,0x1F,0x18,0x2F,0x30,0x4F,0x70,0x6F,0x50,0x9F,0xE0,0x9F,0xE0,0xBF,0xC0,
  17.     0xFF,0x80,0xB7,0xC8,0x63,0x5C,0x43,0x7C,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00,
  18.     0xC0,0xC0,0xB0,0x70,0x18,0xE8,0x0C,0xF4,0x0C,0xF4,0x82,0x7E,0x82,0x7E,0x86,0x7A,
  19.     0xC6,0x3A,0xE6,0x1A,0xF4,0x0C,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00,
  20.  
  21.         /* Tile 0x08 */
  22.     0x07,0x07,0x1E,0x19,0x20,0x3F,0x40,0x7F,0x42,0x7D,0x81,0xFE,0x81,0xFE,0x83,0xFC,
  23.     0xD7,0xA8,0xBB,0xC4,0x6E,0x51,0x7C,0x43,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00,
  24.     0xC0,0xC0,0x70,0xB0,0xE8,0x18,0xF4,0x0C,0xF4,0x0C,0xFE,0x02,0xFE,0x02,0xFE,0x02,
  25.     0xFE,0x02,0x7E,0x82,0x3C,0xC4,0x3C,0xC4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00,
  26.     0x07,0x07,0x1B,0x1C,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xE0,0x9F,0x90,0xEF,0x89,0xF6,
  27.     0x8D,0xF2,0x9F,0xE0,0x5E,0x61,0x6F,0x50,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00,
  28.     0xC0,0xC0,0xB0,0x70,0x28,0xD8,0x04,0xFC,0x2C,0xD4,0x1E,0xE2,0x1E,0xE2,0x3E,0xC2,
  29.     0x7E,0x82,0xB6,0x4A,0xE4,0x1C,0xC4,0x3C,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00,
  30.  
  31.         /* Tile 0x10 */
  32.     0x07,0x07,0x18,0x1F,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xEE,0x91,0xF1,0x8E,0xE0,0x9F,
  33.     0xE0,0x9F,0xF1,0x8E,0x71,0x4E,0x72,0x4D,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00,
  34.     0xC0,0xC0,0xF0,0x30,0x08,0xF8,0x04,0xFC,0x04,0xFC,0x02,0xFE,0x02,0xFE,0x92,0x6E,
  35.     0xD6,0x2A,0xFE,0x02,0xEC,0x14,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00,
  36.     0x07,0x07,0x1D,0x1A,0x36,0x29,0x5C,0x63,0x6C,0x53,0xCE,0xB1,0x9F,0xE0,0x9E,0xE1,
  37.     0xAE,0xD1,0xBF,0xC0,0x47,0x78,0x47,0x78,0x2F,0x30,0x1F,0x18,0x07,0x07,0x00,0x00,
  38.     0xC0,0xC0,0x70,0xB0,0x08,0xF8,0x04,0xFC,0x04,0xFC,0xE2,0x1E,0x32,0xCE,0x0E,0xF2,
  39.     0x0E,0xF2,0x1E,0xE2,0x1C,0xE4,0x2C,0xD4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00,
  40.  
  41.         /* Tile 0x18 */
  42.     0x07,0x07,0x1E,0x19,0x33,0x2C,0x49,0x76,0x42,0x7D,0xC4,0xBB,0xC1,0xBE,0xC1,0xBE,
  43.     0xE2,0x9D,0xF3,0x8C,0x78,0x47,0x78,0x47,0x3C,0x23,0x1C,0x1B,0x07,0x07,0x00,0x00,
  44.     0xC0,0xC0,0x70,0xB0,0x68,0x98,0xC4,0x3C,0xC4,0x3C,0xEE,0x12,0xF2,0x0E,0xE2,0x1E,
  45.     0xE2,0x1E,0xF2,0x0E,0x7C,0x84,0x7C,0x84,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00
  46. };
  47.  
  48. /*
  49.  * Image title: bkg.gif
  50.  * Image size: 0x40 x 0x40
  51.  * Number of tiles (total - unique): 0x40 - 0x31
  52.  */
  53.  
  54. unsigned char bkg_data[] = {
  55.  
  56.         /* Tile 0x00 */
  57.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x3F,0x3F,
  58.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  59.         0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xE3,0xE3,0xE7,0xE7,0xE7,0xE7,0xC7,0xC7,
  60.         0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  61.         0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x0F,0x0F,0xC7,0xC7,0xE1,0xE1,
  62.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFC,0xFC,
  63.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,
  64.         0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFC,0xFC,0xF1,0xF1,0xC7,0xC7,0x0F,0x0F,0x3F,0x3F,
  65.  
  66.         /* Tile 0x08 */
  67.         0xC0,0xC0,0x9F,0x9F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  68.         0x0F,0x0F,0xC3,0xC3,0xF0,0xF0,0xFC,0xFC,0xFF,0xFF,0xF8,0xF8,0x83,0x83,0x07,0x07,
  69.         0xFF,0xFF,0xFC,0xFC,0x70,0x70,0x03,0x03,0x07,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  70.         0xF8,0xF8,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  71.         0xF8,0xF8,0x03,0x03,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  72.         0xFF,0xFF,0xF8,0xF8,0x00,0x00,0x03,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  73.         0x80,0x80,0x07,0x07,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,
  74.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
  75.  
  76.         /* Tile 0x10 */
  77.         0xFE,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xF0,0xF0,0xC3,0xC3,0x0F,0x0F,
  78.         0x27,0x27,0x73,0x73,0xF1,0xF1,0xF8,0xF8,0xFC,0xFC,0x7E,0x7E,0xFE,0xFE,0xFF,0xFF,
  79.         0xF8,0xF8,0xC0,0xC0,0x83,0x83,0x1F,0x1F,0x3F,0x3F,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,
  80.         0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  81.         0x1F,0x1F,0x03,0x03,0xE0,0xE0,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  82.         0xCF,0xCF,0x80,0x80,0x90,0x90,0x9F,0x9F,0x9F,0x9F,0xDF,0xDF,0xCF,0xCF,0xCF,0xCF,
  83.         0xF8,0xF8,0xF8,0xF8,0x03,0x03,0xC3,0xC3,0xF3,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  84.         0x03,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  85.  
  86.         /* Tile 0x18 */
  87.         0x3F,0x3F,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  88.         0xC7,0xC7,0xC7,0xC7,0xE7,0xE7,0x1F,0x1F,0x07,0x07,0xC3,0xC3,0xFF,0xFF,0xFF,0xFF,
  89.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xE7,
  90.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,
  91.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,0x3F,0x3F,0xFF,0xFF,
  92.         0xE0,0xE0,0xE0,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,
  93.         0x00,0x00,0x00,0x00,0x80,0x80,0xF9,0xF9,0x81,0x81,0x0F,0x0F,0x1F,0x1F,0x80,0x80,
  94.         0xFF,0xFF,0xFF,0xFF,0x1F,0x1F,0x80,0x80,0xF0,0xF0,0xFF,0xFF,0x0F,0x0F,0xFF,0xFF,
  95.  
  96.         /* Tile 0x20 */
  97.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xF8,0xF8,0xF1,0xF1,0xE3,0xE3,
  98.         0xC3,0xC3,0xC3,0xC3,0xE7,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,
  99.         0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0x98,0x98,0x67,0x67,
  100.         0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0x61,0x61,0x7E,0x7E,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,
  101.         0xFE,0xFE,0xC0,0xC0,0x18,0x18,0xFC,0xFC,0x00,0x00,0xFC,0xFC,0xF0,0xF0,0x81,0x81,
  102.         0x0F,0x0F,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  103.         0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  104.         0xE7,0xE7,0xEF,0xEF,0xE8,0xE8,0xE0,0xE0,0xE6,0xE6,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
  105.  
  106.         /* Tile 0x28 */
  107.         0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7C,0x7C,0x7F,0x7F,0x78,0x78,0x60,0x60,
  108.         0xF9,0xF9,0xE7,0xE7,0x9F,0x9F,0x7E,0x7E,0xE0,0xE0,0xC0,0xC0,0x8D,0x8D,0x1D,0x1D,
  109.         0xDF,0xDF,0xBF,0xBF,0x7F,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0xCF,0xCF,0xC7,0xC7,
  110.         0xFF,0xFF,0xFE,0xFE,0xF8,0xF8,0xF1,0xF1,0x03,0x03,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,
  111.         0x0F,0x0F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  112.         0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  113.         0x06,0x06,0x0F,0x0F,0xBF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  114.         0x1B,0x1B,0xFB,0xFB,0xF7,0xF7,0xF7,0xF7,0xEF,0xEF,0xDF,0xDF,0xFF,0xFF,0xFF,0xFF,
  115.  
  116.         /* Tile 0x30 */
  117.         0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3
  118. };
  119.  
  120. unsigned char bkg_tiles[] = {
  121.         0x00,0x01,0x01,0x02,0x01,0x03,0x04,0x05,
  122.         0x01,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,
  123.         0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,
  124.         0x15,0x16,0x17,0x01,0x01,0x18,0x01,0x01,
  125.         0x19,0x01,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
  126.         0x20,0x01,0x21,0x22,0x23,0x24,0x25,0x26,
  127.         0x27,0x28,0x29,0x2A,0x2B,0x2C,0x01,0x01,
  128.         0x2D,0x2E,0x2F,0x30,0x01,0x01,0x01,0x01
  129. };
  130.  
  131. void main()
  132. {
  133.   int i, j, x, y, t;
  134.  
  135.   /* Initialize the background */
  136.   set_bkg_data(0x00, 0x31, bkg_data);
  137.   for(i = 0; i < 32; i+=8)   /* Width = 0x100 = 0x20 * 8 */
  138.     for(j = 0; j < 32; j+=8)   /* Height = 0x100 = 0x20 * 8 */
  139.       set_bkg_tiles(i, j, 8, 8, bkg_tiles);
  140.   show_bkg();
  141.  
  142.   x = y = 64;
  143.  
  144.   sprites8x16();   /* sprites are 8x16 */
  145.   set_sprite_data(0x00, 0x1C, earth_data);
  146.   set_sprite_tile(0, 0x00);
  147.   set_sprite_tile(1, 0x02);
  148.   move_sprite(0, x, y);
  149.   move_sprite(1, x+8, y);
  150.   show_sprites();
  151.   display_on();
  152.   enable_interrupts();
  153.  
  154.   t = 0;
  155.   j = 0;
  156.   while(1) {
  157.     delay(1000);
  158.     i = joypad();
  159.     if(i & J_START) {
  160.       break;
  161.     }
  162.     if(i & J_UP)
  163.       y--;
  164.     if(i & J_DOWN)
  165.       y++;
  166.     if(i & J_LEFT)
  167.       x--;
  168.     if(i & J_RIGHT)
  169.       x++;
  170.  
  171.     if(t%8 == 0)
  172.       scroll_bkg(2, 1);
  173.  
  174.     if(t%16 == 0) {
  175.       set_sprite_tile(0, t/16*4);
  176.       set_sprite_tile(1, t/16*4+2);
  177.     }
  178.  
  179.     if(i & (J_UP | J_DOWN | J_LEFT | J_RIGHT)) {
  180.       move_sprite(0, x, y);
  181.       move_sprite(1, x+8, y);
  182.     }
  183.     t++;
  184.     if(t/16 >= 7)
  185.       t = 0;
  186.   }
  187. }
  188.